#include<iostream>
#include<algorithm>
using namespace std;
const int N = 1010;
int n;
int arr[N][N];
int main()
{
	cin >> n;
	for (int i = 0; i < n; i++) {
		for (int j = 0; j <= i; j++) {
			cin >> arr[i][j];
			if (i == 0) {
				continue;
			}
			if (j == 0) {
				arr[i][j] += arr[i - 1][j];
			}
			else if (i == j) {
				arr[i][j] += arr[i - 1][j - 1];
			}
			else {
				arr[i][j] += max(arr[i - 1][j], arr[i - 1][j - 1]);
			}
		}
	}
	int m = arr[n - 1][0];
	for (int i = 1; i < n; i++) {
		m = max(m, arr[n - 1][i]);
	}
	cout << m << endl;
	return 0;
}
//int main()
//{
//	cin >> n;
//	for (int i = 1; i <= n; i++) {
//		for (int j = 1; j <= i; j++) {
//			cin >> arr[i][j];
//		}
//	}
//	if (n == 1) {
//		cout << arr[1][1] << endl;
//		return 0;
//	}
//	dp[0][1] = arr[1][1];
//	for (int i = 1; i <= n; i++) {
//		for (int j = 1; j <= i; j++) {
//			if (j == 1) {
//				dp[i][j] = max(dp[i - 1][j], dp[i - 1][1]);
//			}
//			else {
//				dp[i][j] = max(dp[i - 1][j], dp[i - 1][j - 1]);
//			}
//		}
//	}
//	cout << dp[2][1] << endl;
//	return 0;
//}